Singleton Pattern হলো একটি ডিজাইন প্যাটার্ন, যা একটি ক্লাসের একক ইনস্ট্যান্স তৈরি করতে এবং সেই একক ইনস্ট্যান্স অ্যাপ্লিকেশন জুড়ে পুনরায় ব্যবহার করতে সহায়ক। এটি Creational Design Pattern-এর অন্তর্গত এবং Salesforce সহ বিভিন্ন প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। Singleton Pattern অ্যাপ্লিকেশন জুড়ে ক্লাসের ইনস্ট্যান্স ম্যানেজ করতে সহায়ক, বিশেষ করে যখন একই ইনস্ট্যান্স বারবার প্রয়োজন হয়।
Apex-এ Singleton Pattern প্রয়োগ করতে হলে একটি ক্লাস তৈরি করতে হবে, যা একটি Private Constructor এবং Static Method ব্যবহার করে একক ইনস্ট্যান্স তৈরি করে। নিচে একটি Singleton Pattern এর উদাহরণ দেয়া হলো:
public class SingletonExample {
// ক্লাসের একক ইনস্ট্যান্স স্ট্যাটিক ভেরিয়েবল হিসেবে সংরক্ষণ করা হয়েছে
private static SingletonExample instance = null;
// Private Constructor যাতে বাহির থেকে সরাসরি ইনস্ট্যান্স তৈরি করা না যায়
private SingletonExample() {
// Constructor কোড
}
// ক্লাসের একক ইনস্ট্যান্স রিটার্ন করার স্ট্যাটিক মেথড
public static SingletonExample getInstance() {
if (instance == null) {
instance = new SingletonExample();
}
return instance;
}
// অন্যান্য মেথড বা প্রোপার্টিজ
public void showMessage() {
System.debug('Singleton instance is working!');
}
}
// প্রথমবার getInstance() মেথড কল করলে নতুন ইনস্ট্যান্স তৈরি হবে
SingletonExample singleton = SingletonExample.getInstance();
singleton.showMessage();
// পুনরায় getInstance() কল করলে একই ইনস্ট্যান্স রিটার্ন করবে
SingletonExample singleton2 = SingletonExample.getInstance();
System.debug(singleton == singleton2); // Output: true (দুইটি ইনস্ট্যান্স একই)
instance
হিসেবে সংরক্ষণ করা হয়েছে।instance
ভেরিয়েবল null
হয়, তাহলে নতুন ইনস্ট্যান্স তৈরি করে এবং একই ইনস্ট্যান্স পুনরায় ব্যবহার করা হয়।Configuration বা Settings Data ম্যানেজ করা: অ্যাপ্লিকেশন জুড়ে যেখানে একই কনফিগারেশন বা সেটিংস ডেটা প্রয়োজন সেখানে Singleton Pattern ব্যবহার কার্যকর।
Cache Data সংরক্ষণ: যেখানে বারবার একই ডেটা রিকোয়েস্ট করা হয়, সেখানে Singleton Pattern Cache Data হিসেবে ব্যবহার করে কার্যক্ষমতা উন্নত করতে পারে।
Utility বা Helper Classes: যেখানে নির্দিষ্ট ইউটিলিটি ফাংশন বা Helper ক্লাসের ইনস্ট্যান্স একবার তৈরি করে অ্যাপ্লিকেশন জুড়ে ব্যবহৃত হতে পারে।
Logging এবং Debugging ম্যানেজ করা: লগিং বা ডিবাগিং কার্যক্রমে Singleton Pattern ব্যবহার করে একক ইনস্ট্যান্সের মাধ্যমে লগ ডেটা ম্যানেজ করা যায়।
Lazy Initialization: Singleton Pattern-এ getInstance()
মেথডে instance
null
থাকলে তবেই নতুন ইনস্ট্যান্স তৈরি করুন, যা মেমোরি অপটিমাইজেশন নিশ্চিত করে।
Thread Safety: একই সাথে একাধিক থ্রেডে অ্যাক্সেস করতে হলে Thread Safe Singleton তৈরি করুন, তবে Apex Async environment-এ সাধারণত এটি গুরুত্বপূর্ণ নয়।
Exception Handling: Singleton ক্লাসে Exception Handling যুক্ত করুন, যাতে ডেটা বা ইনস্ট্যান্স ব্যবহার করার সময় কোনো ত্রুটি হলে সঠিক বার্তা প্রদান করা যায়।
Singleton Pattern Apex সহ বিভিন্ন প্রোগ্রামিং ভাষায় ব্যবহৃত একটি ডিজাইন প্যাটার্ন, যা একটি ক্লাসের একক ইনস্ট্যান্স তৈরি করতে এবং তা অ্যাপ্লিকেশন জুড়ে পুনরায় ব্যবহার করতে সহায়ক। এটি মেমোরি ব্যবহারের কার্যক্ষমতা বাড়ায়, কনসিসটেন্সি নিশ্চিত করে এবং ডেটা অ্যাক্সেস সহজতর করে। Apex-এ Singleton Pattern ব্যবহার করে অ্যাপ্লিকেশন আরও কার্যকর এবং সুরক্ষিত রাখা যায়।
common.read_more